package com.example.demo.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

/**
 * 生成主键的工具类
 * @author admin
 *
 */
public class PrimaryKeyUtil {
	/**
	 * @return
	 * @创建时间 2019年6月26日
	 * @创建人 许子文
	 * @功能描述: 获取没有连接杠的uuid
	 */
	public static String getUUIDWithOutLink() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}
	
	/**
	 * @return
	 * @创建时间: 2019年7月8日
	 * @创建人: 许子文
	 * @功能描述: 获取7位随机数
	 */
	public static int getSevenRandom() {
		Random random = new Random();
		
		int randomint = random.nextInt(9000000);
		
		randomint += 1000000;
		
		return randomint;
	}

	/**
	 * @title getDateByFormat
	 * @author: 许子文
	 * @date: 2019年3月25日
	 * @description: 获取格式化的时间
	 */
	public static String getDateByFormat(String pattern) {
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		Date date = new Date();
		String dateformat = sdf.format(date);
		return dateformat;
	}
	
	/**
	 * @return
	 * @创建时间: 2019年7月8日
	 * @创建人: 许子文
	 * @功能描述: 获取21位的主键(时间精确到s)
	 */
	public static String get21PrimeryKey() {
		return getDateByFormat("yyyyMMddHHmmss")+getSevenRandom();
	}
	
	/**
	 * @return
	 * @创建时间: 2019年7月8日
	 * @创建人: 许子文
	 * @功能描述: 获取24位的主键(时间精确到ms)
	 */
	public static String get24PrimeryKey() {
		return getDateByFormat("yyyyMMddHHmmssSSS")+getSevenRandom();
	}
	
	public static void main(String[] args) {
		System.out.println(getUUIDWithOutLink());
	}
}
